<?php

namespace app\admin\controller\example;

use app\common\controller\Backend;
use think\Log;

/**
 * 关联模型
 *
 * @icon   fa fa-table
 * @remark 当使用到关联模型时需要重载index方法
 */
class Relationmodel extends Backend
{
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = model('AdminLog');
    }


    /**
     * * 查看
     * 主页方法，用于处理管理员日志列表的显示和数据请求。
     * 当请求为AJAX请求时，根据搜索条件返回管理员日志列表的JSON数据。
     * 如果不是AJAX请求，则返回主页视图。
     *
     * @return mixed 根据请求类型返回JSON数据或视图页面。
     */
    public function index()
    {
        // 启用关联搜索，允许搜索与管理员相关的日志
        $this->relationSearch = true;
        // 指定搜索字段，这里为“管理员用户名”和“日志ID”
        $this->searchFields = "admin.username,id";

        // 检查是否为AJAX请求
        if ($this->request->isAjax()) {
            // 构建查询参数
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();

            // 查询日志列表，并关联管理员信息
            $list = $this->model
                ->with("admin")
                ->where($where)
                ->order($sort, $order)
                ->paginate($limit);

            // 构建结果数组
            $result = array("total" => $list->total(), "rows" => $list->items());

            Log::record('$result = ' . json_encode($result));
            // 返回JSON数据
            return json($result);
        }

        // 返回视图页面
        return $this->view->fetch();
    }
}
